package com.wecon.dianping.service;

import com.wecon.dianping.common.BusinessException;
import com.wecon.dianping.model.Shop;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @author Weikang  Wang
 * @program: com.wecon.dianping.service
 * @description: 门店管理服务层
 * @date 2020/3/18 10:05
 */
public interface ShopService {

    /**
     * 创建门店
     * @param shop 门店
     * @return /
     */
    Shop create(Shop shop) throws BusinessException;

    /**
     * 根据id获取门店
     * @param id id
     * @return /
     */
    Shop getShop(Integer id);

    /**
     * 获取所有
     * @return /
     */
    List<Shop> selectAll();

    /**
     * 获取门店数量
     * @return /
     */
    Integer countAllShop();

    /**
     * 获取推荐列表
     * @param longitude 经度
     * @param latitude 纬度
     * @return /
     */
    List<Shop> recommend(BigDecimal longitude, BigDecimal latitude);

    /**
     * 搜索
     * @param longitude /
     * @param latitude /
     * @param keyword 关键字
     * @return /
     */
    List<Shop> search(BigDecimal longitude, BigDecimal latitude, String keyword, Integer categoryId, Integer orderby, String tags);

    /**
     * 搜索标签
     * @param keyword /
     * @param categoryId /
     * @param tags /
     * @return /
     */
    List<Map<String, Object>> searchGroupByTags(String keyword, Integer categoryId, String tags);

}
